bitkeeper revision 1.1664 (42a064ddVMYCAab_WQM9CcyTOyYMgQ)
authorkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Fri, 3 Jun 2005 14:10:37 +0000 (14:10 +0000)
committerkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Fri, 3 Jun 2005 14:10:37 +0000 (14:10 +0000)
Simplify implementation of map_domain_mem.
Signed-off-by: Keir Fraser <keir@xensource.com>
xen/arch/x86/x86_32/domain_page.c

index 40d0f8f96420bc48d3e3341de77f2c687992120e..c1a0172462849e5619bcf69ffc829108e2c458e4 100644 (file)
@@ -24,20 +24,6 @@ l1_pgentry_t *mapcache;
 static unsigned int map_idx, epoch, shadow_epoch[NR_CPUS];
 static spinlock_t map_lock = SPIN_LOCK_UNLOCKED;
 
-/* Use a spare PTE bit to mark entries ready for recycling. */
-#define READY_FOR_TLB_FLUSH (1<<10)
-
-static void flush_all_ready_maps(void)
-{
-    l1_pgentry_t *cache = mapcache;
-    unsigned int i;
-
-    for ( i = 0; i < MAPCACHE_ENTRIES; i++ )
-        if ( (l1e_get_flags(cache[i]) & READY_FOR_TLB_FLUSH) )
-            cache[i] = l1e_empty();
-}
-
-
 void *map_domain_mem(unsigned long pa)
 {
     unsigned long va;
@@ -65,7 +51,6 @@ void *map_domain_mem(unsigned long pa)
         if ( unlikely(idx == 0) )
         {
             ASSERT(flush_count++ == 0);
-            flush_all_ready_maps();
             perfc_incrc(domain_page_tlb_flush);
             local_flush_tlb();
             shadow_epoch[cpu] = ++epoch;
@@ -87,5 +72,5 @@ void unmap_domain_mem(void *va)
     ASSERT((void *)MAPCACHE_VIRT_START <= va);
     ASSERT(va < (void *)MAPCACHE_VIRT_END);
     idx = ((unsigned long)va - MAPCACHE_VIRT_START) >> PAGE_SHIFT;
-    l1e_add_flags(mapcache[idx], READY_FOR_TLB_FLUSH);
+    mapcache[idx] = l1e_empty();
 }